//
//  MenuViewController.h
//  MenuDemo
//
//  Created by 卢浩 on 16/4/14.
//  Copyright © 2016年 卢浩. All rights reserved.
//

#import <UIKit/UIKit.h>

//协议
@protocol MenuCellClickDelegate <NSObject>

- (void)didClickLeftMenuCellTitle:(NSString *)title;

- (void)didClickRightMenuCellTitle:(NSString *)title;

@end

@interface MenuViewController : UIViewController

/**
 *  自定义左侧抽屉(可为空,为空时使用默认左侧抽屉;如使用自定义,切记设置抽屉宽度)
 */
@property (nonatomic,strong) UIViewController *customLeftVC;

/**
 *  自定义左侧抽屉宽度(可为空;如使用自定义左侧抽屉,切记抽屉宽度)
 */
@property (nonatomic,assign) CGFloat customLeftWidht;

/**
 *  自定义右侧抽屉(可为空,为空时使用默认右侧抽屉;如使用自定义,切记设置抽屉宽度)
 */
@property (nonatomic,strong) UIViewController *customRightVC;

/**
 *  自定义右侧抽屉宽度(可为空;如使用自定义右侧抽屉,切记抽屉宽度)
 */
@property (nonatomic,assign) CGFloat customRightWidth;

/**
 *  中间视图(不能为空)
 */
@property (nonatomic,strong) UIViewController *centerVC;

/**
 *  默认左侧抽屉数据源(如不设置自定义左抽屉,切记设置此数据源)
 */
@property (nonatomic,strong) NSMutableArray *leftDataArr;

/**
 *  默认右侧抽屉数据源(如不设置自定义右抽屉,切记设置此数据源)
 */
@property (nonatomic,strong) NSMutableArray *rightDataArr;

/**
 *  左侧抽屉是否展示
 */
@property (nonatomic,assign) BOOL isLeftShow;

/**
 *  右侧抽屉是否展示
 */
@property (nonatomic,assign) BOOL isRightShow;

@property (nonnull,assign) id<MenuCellClickDelegate> clickMenuCellDelegate;

/**
 *  类方法:初始化抽屉类
 *
 *  @param leftVC   左侧抽屉
 *  @param rightVC  右侧抽屉
 *  @param centerVC 中间视图(原本创建的视图)
 *
 *  @return 抽屉类
 */
+ (instancetype)initWithCustomLeftVC:(UIViewController *)leftVC leftWidth:(CGFloat)leftWidth CustomRightVC:(UIViewController *)rightVC rightWidth:(CGFloat)rightWidth CenterVC:(UIViewController *)centerVC;

/**
 *  单例:获取抽屉类
 *
 *  @return 抽屉类
 */
+ (instancetype)getMenuVC;

/**
 *  展示左侧抽屉
 */
- (void)showLeftVC;

/**
 *  隐藏左侧抽屉
 */
- (void)hideLeftVC;

/**
 *  展示右侧抽屉
 */
- (void)showRightVC;

/**
 *  隐藏右侧抽屉
 */
- (void)hideRightVC;

@end
